package com.fyl.leetcode.greedy;

/**
 * @author:fyl
 * @date 2021/5/9 9:50
 * @Modified By:
 * @Modified Date:
 * @Description:
 * 题目描述：可以进行多次交易，多次交易之间不能交叉进行，可以进行多次交易。
 * 示例 1:
 *
 * 输入: prices = [7,1,5,3,6,4]
 * 输出: 7
 * 解释: 在第 2 天（股票价格 = 1）的时候买入，在第 3 天（股票价格 = 5）的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
 *    随后，在第 4 天（股票价格 = 3）的时候买入，在第 5 天（股票价格 = 6）的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
 *
 * 对于 [a, b, c, d]，如果有 a <= b <= c <= d ，那么最大收益为 d - a。而 d - a = (d - c) + (c - b) + (b - a) ，
 * 因此当访问到一个 prices[i] 且 prices[i] - prices[i-1] > 0，那么就把 prices[i] - prices[i-1] 添加到收益中。
 */
public class BestTimeBuySellStockII {
    public int maxProfit(int[] prices) {
        if (prices.length == 0) return 0;
        int max = 0;
        for (int i = 0; i < prices.length-1; i++) {
            if ((prices[i+1] - prices[i]) > 0) {
                max += prices[i+1] - prices[i];
            }
        }
        return max;
    }
}
